package com.jack.thinking.java._22.swing.swt;

import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class ShellsAreMainWindows {
	static Shell[] shells = new Shell[10];
	
	public static void main(String[] args) {
		Display display = new Display();      // 它是swt 与 操作系统沟通的一座桥梁， 负责swt 与 操作系统之间的通信，
		for(int i = 0; i < shells.length; i++) {
			shells[i] = new Shell(display);
			shells[i].setText("Shell #" + i);
			shells[i].open();
		}
		
		while(!shellsDisposed()) {
			if(!display.readAndDispatch()) {  // 如果 事件队列中 存在 更多的 事件在等待处理， 会返回true
				System.out.println("sleep");
				display.sleep();
			}
		}
		display.dispose();
	}
	
	static boolean shellsDisposed() {
		for(int i = 0 ; i < shells.length ; i ++) {
			if(shells[i].isDisposed()) {
				return true;
			}
		}
		return false;
	}
}
